Spreadsheet Workbench/cs

Ikona pracovního prostředí Spreadsheet

Úvod

Pracovní plocha Spreadsheet umožňuje vytvářet a upravovat tabulkové dokumenty, používat data z tabulky jako parametry v modelu, vyplňovat tabulku daty získanými z modelu, provádět výpočty a exportovat data do jiných tabulkových aplikací, jako jsou LibreOffice nebo Microsoft Excel.

Tabulka, v níž jsou některé buňky vyplněny textem a číselnými hodnotami

Nástroje

Předvolby

Odstranění buněk může být nebezpečné

Upozorňujeme, že smazání nebo odstranění buněk s daty může způsobit poškození tabulky a vašeho modelu, pokud na nich model závisí. V takovém případě nebudete předem upozorněni.

Vložení a odstranění řádků a sloupců

Řádky a sloupce lze vkládat nebo odstraňovat tak, že kliknete pravým tlačítkem myši na záhlaví řádku nebo sloupce a z kontextového menu vyberete příslušnou možnost. Nejprve je možné vybrat více řádků nebo sloupců. Buď podržením klávesy Ctrl při výběru záhlaví, nebo podržením levého tlačítka myši a tažením.

Editace buněk

Obsah buňky lze upravit tak, že buňku vyberete a zadáte hodnotu do vstupního pole Content v horní části okna. Chcete-li buňku upravit přímo na místě, vyberte ji a stiskněte klávesu F2 nebo na ni dvakrát klikněte.

Odstranění buněk

  1. Vyberte jednu nebo více buněk. Chcete-li vybrat více buněk, podržte při výběru klávesu Ctrl nebo podržte levé tlačítko myši a tažením vyberte obdélníkový rozsah buněk.
  2. Proveďte jednu z následujících akcí:
    • Stiskněte klávesu Delete.
    • Klikněte pravým tlačítkem myši na jednu z vybraných buněk a z kontextového menu vyberte možnost Odstranit.

Tato operace odstraní obsah, vlastnosti a aliasy buněk. Chcete-li odstranit pouze jejich obsah, je třeba buňky místo toho upravit.

Vyjmutí, kopírování a vložení buněk

  1. Vyberte jednu nebo více buněk. Viz výše.
  2. Proveďte jednu z následujících akcí:
    • Použijte jednu ze standardních klávesových zkratek: Ctrl+X, Ctrl+C nebo Ctrl+V.
    • Klikněte pravým tlačítkem myši na jednu z vybraných buněk a z kontextového menu vyberte příslušnou možnost.
    • Vyberte příslušnou možnost z menu Upravit.

Při operacích vyjmout a kopírovat se do schránky uloží obsah, vlastnosti a aliasy buněk. Při operaci vložit se data zapíší tak, že obsah buněk v levém horním rohu uložených dat se vloží do aktivní buňky. Ostatní uložený obsah se umístí relativně k této buňce. Vzorce se odpovídajícím způsobem aktualizují. Aliasy se vloží pouze v případě, že jsou jedinečné.

Vlastnosti buněk

Vlastnosti buňky tabulky lze upravit tak, že na ni kliknete pravým tlačítkem myši a z kontextového menu vyberete Vlastnosti…. Zobrazí se následující dialogové okno:

Jak naznačují záložky, lze změnit následující vlastnosti:

Výrazy buněk

Buňka tabulky může obsahovat číslo, text nebo výraz. Výrazy musí začínat rovnítkem '='.

Výrazy v buňkách mohou obsahovat čísla, funkce, odkazy na jiné buňky a odkazy na vlastnosti modelu (viz však níže uvedená sekced Aktuální omezení). Na buňku lze odkazovat pomocí její adresy (velké písmeno sloupce + číslo řádku, např. B4) nebo pomocí jejího aliasu.

Poznámka: FreeCAD zachází s výrazem v buňkách jako s programovacím kódem. Při úpravách buňky se proto může stát, že zobrazený obsah nebude odpovídat vašim nastaveným zobrazením:

Odkazy na objekty v modelu jsou vysvětleny níže v sekci Odkazy na CAD data. Použití hodnot buněk tabulkového procesoru k definování vlastností modelu je vysvětleno níže v sekci Data tabulkového procesoru ve výrazech. Další informace o výrazech a dostupných funkcích najdete v sekci Výrazy.

Vzájemná interakce mezi tabulkami a CAD modelem

Data v buňkách tabulky lze použít ve vzorcích parametrů CAD modelu. Tabulku tak lze využít jako zdroj hodnot parametrů používaných v celém modelu, čímž se tyto hodnoty efektivně shromáždí na jednom místě. Jakmile dojde ke změně hodnot v tabulce, promítnou se do celého modelu.

Stejně tak lze vlastnosti objektů z CAD modelu použít ve vzorcích v buňkách tabulky. To umožňuje v tabulce využívat vlastnosti objektů, jako je objem nebo plocha. Pokud dojde ke změně názvu objektu v CAD modelu, tato změna se automaticky promítne do všech odkazů ve vzorcích tabulky, které tento změněný název používají.

V jednom dokumentu lze použít více než jednu tabulku. Tabulku lze identifikovat buď podle jejího názvu, nebo podle jejího označení.

FreeCAD při vytvoření tabulky automaticky přiřadí jedinečný název. Tyto názvy mají formát Spreadsheet, Spreadsheet001, Spreadsheet002 a tak dále. Název nelze změnit a není viditelný ve vlastnostech tabulky. Lze ho použít k odkazu na tabulku ve výrazech (viz Data tabulky ve výrazech níže).

Název spreadsheetu se při jeho vytvoření automaticky nastaví na název tabulky. Na rozdíl od názvu lze tento název změnit, například v panelu vlastností nebo pomocí příkazu „Přejmenovat“ v kontextovém menu. Ve výchozím nastavení FreeCAD nedovoluje duplicitní názvy listů, ale existuje nastavení, kterým lze toto omezení zrušit. Na listy se stejnými názvy v rámci jednoho dokumentu nelze odkazovat pomocí jejich názvu.

FreeCAD kontroluje cyklické závislosti. Viz Aktuální omezení.

Odkazy na CAD data

Jak již bylo uvedeno výše, ve vzorcích tabulkového procesoru lze odkazovat na data z CAD modelu.

Následující tabulka uvádí několik příkladů za předpokladu, že model obsahuje prvek s názvem "MyCube":

CAD-data Buňka v tabulce Výsledek
Parametrická délka Part-Workbench krychle =MyCube.Length Délka v jednotkách mm
Objem krychle =MyCube.Shape.Volume Objem v mm³ bez jednotek
Typ tvaru krychle =MyCube.Shape.ShapeType Řetězec: Solid
Návěstí krychle =MyCube.Label Řetězec: MyCube
Souřadnice X těžiště krychle =MyCube.Shape.CenterOfMass.x Souřadnice v mm bez jednotek

Data tabulky ve vzorcích

Chcete-li použít data z tabulky v jiných částech programu FreeCAD, obvykle vytvoříte výraz, který odkazuje na tabulku a buňku obsahující data, která chcete použít. Tabulky můžete identifikovat podle názvu nebo štítku a buňky podle adresy nebo aliasu. Pro všechny způsoby odkazování je k dispozici funkce automatického doplňování.

Tabulka podle názvu Tabulka podle návěstí
Buňka podle adresy =Spreadsheet042.B5 =<<MySpreadsheet>>.B5
Buňka podle Alias =Spreadsheet042.MyAlias =<<MySpreadsheet>>.MyAlias

Doporučeným způsobem odkazování na data v tabulce je použití názvu tabulky a aliasu buňky. Podrobnější vysvětlení výhod a nevýhod jednotlivých způsobů odkazování najdete v následující podrobnější části.

Použití návěstí tabulky má tu výhodu, že ho lze libovolně měnit tak, aby popisoval obsah tabulky. Také je snazší identifikovat používanou tabulku, protože text ve výrazu odpovídá popisku zobrazenému v zobrazení modelu a vlastností. Pokud se rozhodnete změnit název listu, budou stávající odkazy na jeho obsah aktualizovány, takže přejmenováním listu nedojde k narušení funkčnosti vašich výrazů. Interní název listu není nikde snadno dostupný, s výjimkou editoru výrazů, takže pokud tento interní název použijete a později se rozhodnete listy přejmenovat, může být obtížné vysledovat, odkud data ve vašich výrazech pocházejí.

Mějte na paměti, že při vytvoření nového listu se jeho název shoduje s označením, takže se snadno může stát, že omylem použijete název listu namísto jeho označení. Jednoduchým způsobem, jak tomu zabránit, je pojmenovat list smysluplným názvem ještě předtím, než ho začnete používat ve vzorcích.

Ačkoli můžete ve výrazu k odkazování na buňku použít číslo řádku a sloupce, doporučuje se buňce přiřadit alias a používat ho. Informace o tom, jak alias nastavit, najdete v článku Vlastnosti buněk. Například pokud data v buňce B1 obsahují parametr délky pro objekt, alias MyObject_Length umožní odkazovat na tuto hodnotu jako <<MyParams>>.MyObject_Length namísto Spreadsheet.B1. Aliasy jsou nejen mnohem srozumitelnější a přehlednější, ale také se mnohem snáze mění, pokud se rozhodnete upravit strukturu tabulky. Použití aliasu má také tu výhodu, že je snazší rozpoznat, které buňky se používají k ovládání jiných částí dokumentu. Upozorňujeme, že FreeCAD automaticky upraví poziční odkazy ve výrazech, pokud do tabulky vložíte nebo odstraníte řádky a sloupce, takže i když ve výrazu používáte čísla řádků a sloupců, můžete vkládat řádky a sloupce, aniž by došlo k porušení odkazů na okolní buňky.

Složité modely a nové výpočty

Úprava tabulky spustí přepočítání 3D modelu, i když se změny modelu nijak nedotýkají. U složitých modelů může přepočítání trvat dlouho a čekání po každé jednotlivé úpravě je samozřejmě dost nepříjemné.

Existují tři možnosti, jak tento problém vyřešit:

  1. Dočasně přeskočit přepočítání:
    • Ve stromovém zobrazení klikněte pravým tlačítkem myši na dokument , který obsahuje tabulku.
    • Z kontextového menu vyberte možnost Přeskočit přepočítání.
    • Toto řešení má jednu velkou nevýhodu. Nové hodnoty zadané do tabulky se nezobrazí, dokud nedojde k přepočítání dokumentu. Místo nich se zobrazí #PENDING.
    • Po dokončení úprav můžete výpočty provést ručně pomocí příkazu Std Obnovit nebo deaktivovat možnost Přeskočit přepočítání.
  2. Pomocí makra můžete při úpravách tabulky automaticky přeskočit přepočítávání:
    • Stáhněte si a spusťte soubor skipSheet.FCMacro.
    • Toto řešení ušetří oproti prvnímu řešení několik kroků, má však také zmíněnou nevýhodu.
  3. Uložte tabulku do samostatného FreeCAD souboru:
    • Na data z tabulky v externím souboru .FCStd můžete odkazovat pomocí této syntaxe: =NameOfFile#<<MySpreadsheet>>.MyAlias.
    • Výhodou toho, že je tabulka uložena v samostatném souboru, oproti vypnutí přepočítávání je to, že tabulka se skutečně přepočítá.
    • Nevýhodou je, že model se po změnách v tabulce automaticky nepřepočítá.
    • V případě, že nejprve otevřete soubor 'tabulky', změníte jednu nebo více hodnot a poté otevřete soubor 'modelu', nic nenaznačuje, že je třeba model přepočítat. Pokud jsou však oba soubory otevřené, ikona Std Obnovit se po provedení změn v souboru 'tabulky' správně aktualizuje pro soubor 'modelu'.

Jednotky

Tabulkový procesor pracuje s pojmem rozměru (jednotky) přiřazeného hodnotám v buňkách. Číslo zadané bez přiřazené jednotky nemá žádný rozměr. Jednotku je třeba zadat bezprostředně za číselnou hodnotou, bez mezery mezi nimi. Pokud je k číslu přiřazena jednotka, bude se tato jednotka používat ve všech výpočtech. Například vynásobením dvou délek s jednotkou mm získáme plochu s jednotkou mm².

Pokud buňka obsahuje hodnotu představující veličinu, měla by být zadána spolu s příslušnou jednotkou. Ačkoli v mnoha jednoduchých případech lze vystačit s hodnotou bez jednotky, není rozumné jednotku nezadávat. Pokud je hodnota představující veličinu zadána bez příslušné jednotky, existují určité posloupnosti operací, které způsobí, že FreeCAD nahlásí neslučitelné jednotky ve výrazu, i když by se zdálo, že by měl být platný. (To lze lépe pochopit po přečtení tohoto vlákna na fórech FreeCADu.)

Zobrazené jednotky hodnoty buňky můžete změnit pomocí dialogového okna Vlastnosti buňky. Tím se nezmění hodnota obsažená v buňce; dojde pouze k převodu stávající hodnoty pro účely zobrazení. Hodnota použitá pro výpočty se nezmění a nezmění se ani výsledky vzorců, které tuto hodnotu používají. Například buňka obsahující hodnotu "5,08cm" může být zobrazena jako "2in" změnou hodnoty na kartě jednotek na "in".

V dialogovém okně vlastností buňky nelze bezrozměrné číslo převést na číslo s jednotkou. Je možné zadat řetězec jednotky, který se sice zobrazí, ale buňka bude i nadále obsahovat bezrozměrné číslo. Chcete-li bezrozměrnou hodnotu převést na hodnotu s jednotkou, je nutné hodnotu znovu zadat spolu s příslušnou jednotkou.

Někdy může být žádoucí odstranit z výrazu určitou veličinu. Toho lze dosáhnout vynásobením číslem 1 a jeho reciprokou jednotkou.

Import a export

CSV formát

Tabulky z FreeCADu lze importovat a exportovat do formátu CSV, který je kompatibilní s většinou ostatních tabulkových procesorů, jako jsou Microsoft Excel nebo LibreOffice Calc. Další informace najdete na stránkách Import tabulek a Export tabulek.

Formát XLSX

Tabulky ve Excel-formátu XLSX lze importovat pomocí příkazu Std Import nebo Std Otevřít. Podporovány jsou následující funkce:

Ostatní funkce se do tabulky FreeCADu neimportují.

Tisk

Aby bylo možné provést nastavení stránky potřebné pro tisk, tisknou se tabulky z FreeCADu tak, že se vloží do TechDraw zobrazení tabulky.

Aktuální omezení

FreeCAD při přepočítávání kontroluje cyklické závislosti. Tato kontrola je záměrně omezena na úroveň objektu tabulky. Z tohoto důvodu byste neměli mít tabulku, která obsahuje jak buňky, jejichž hodnoty se používají k zadání parametrů modelu, tak buňky, jejichž hodnoty využívají výstupy z modelu. Například nelze mít buňky, které určují délku, šířku a výšku objektu, a zároveň další buňku, která odkazuje na celkový objem výsledného tvaru. Toto omezení lze obejít použitím dvou tabulek: jedna slouží jako zdroj dat pro vstupní parametry modelu a druhá pro výpočty založené na výsledných geometrických datech.

Vazba na buňky

introduced in 0.20

Obsah buněk lze propojit s jinými buňkami v tabulce. To se může hodit při práci s rozsáhlými tabulkami nebo při načítání obsahu buněk z jiné tabulky.

Tvorba vazby

Chcete-li například propojit oblast buněk A3–C4 s oblastí buněk B1–D2:

  1. Vyberte rozsah buněk A3–C4.
  2. Klikněte pravým tlačítkem myši a z kontextového menu vyberte Přiřadit….
  3. Otevře se dialogové okno Přiřadit buňky tabulky.
  4. Nastavte rozsah B1–D2 do pole Do buněk:
  5. Stiskněte OK.
  6. Vázané buňky mají modrý rámeček, který zvýrazňuje vazbu.
  7. Pokud nyní zadáte něco do buňky C1, okamžitě se to zobrazí i v buňce B3.

Tabulka nyní může vypadat takto

Změna vazby

  1. Klikněte pravým tlačítkem myši na buňku s přiřazenou hodnotou (není nutné označovat celý rozsah s přiřazenými hodnotami) a z kontextového menu vyberte Přiřadit….
  2. Otevře se dialogové okno Přiřadit buňky tabulky.
  3. Změňte jednu nebo více možností. Upozorňujeme, že položku Vázat buňky, tedy rozsah vázaných buněk, nelze změnit.
  4. Stiskněte OK.

Odstranění vazby

  1. Klikněte pravým tlačítkem myši na buňku s přiřazenou hodnotou (není nutné označovat celý rozsah) a z kontextového menu vyberte Přiřadit….
  2. Otevře se dialogové okno Přiřadit buňky tabulky.
  3. Stiskněte tlačítko Odpojit.

Poznámky

Konfigurační tabulky

introduced in 0.20

Pomocí tabulkových procesorů můžete vytvářet konfigurační tabulky se sadami předdefinovaných parametrů pro váš model a poté dynamicky měnit, kterou konfiguraci použít. Podívejte se na návod Konfigurační tabulky. Pokud se chcete dozvědět více o vnitřním fungování této funkce, přečtěte si tento příspěvek na fóru.

Skriptování

import Spreadsheet
sheet = App.ActiveDocument.addObject("Spreadsheet::Sheet", "MySpreadsheet")
sheet.Label = "Dimensions"

sheet.set("A1", "10mm")
sheet.recompute()
sheet.get("A1")

sheet.setAlias("B1", "Diameter")
sheet.set("Diameter", "20mm")
sheet.recompute()
sheet.get("Diameter")

# sheet.get() results in an error if the cell is empty.
# sheet.getContents() can be used to check the cell first.
if sheet.getContents("C1"):
    print(sheet.get("C1"))